package com.zy.explore.license.interfaces.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zy.explore.license.domain.mybatis.entity.SysMenu;
import com.zy.explore.license.domain.mybatis.entity.SysRole;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * 系统用户表(表sys_user)视图展示对象
 *
 * @author ChinaYin  主页:https://gitee.com/zy-explorej2ee 邮箱:zyexplorej2ee@sina.com
 * @date 2021年06月13日 13:16:56
 */
@ApiModel("表(sys_user)实体类VO")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysUserVO {

    /**
     * 系统用户ID
     */
    @ApiModelProperty("系统用户ID")
    private Integer id;

    /**
     * 姓名
     */
    @ApiModelProperty("姓名")
    private String name;

    /**
     * 手机号码
     */
    @ApiModelProperty("手机号码")
    private String phone;

    /**
     * 住宅电话
     */
    @ApiModelProperty("住宅电话")
    private String telephone;

    /**
     * 联系地址
     */
    @ApiModelProperty("联系地址")
    private String address;

    /**
     * 是否可用：0.禁用 1.可用
     */
    @ApiModelProperty("是否可用：0.禁用 1.可用")
    private Boolean enabled;

    /**
     * 用户名
     */
    @ApiModelProperty("用户名")
    private String username;

    /**
     * 密码
     */
    @ApiModelProperty("密码")
    private String password;

    /**
     * 用户头像
     */
    @ApiModelProperty("用户头像")
    private String avatar;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty("上次登录信息")
    private LastLoginInfoVO lastLoginInfo;

    /**
     * 用户角色集合
     */
    @ApiModelProperty("用户角色集合")
    private List<SysRole> roles;

    /**
     * 用户菜单集合
     */
    @ApiModelProperty("用户菜单集合")
    private List<SysMenu> menus;

}